#include "inherit/PrintBanner.h" 
#include "delegate/PrintBanner.h"
#include <iostream>
#include <new>

int main ()
{
    char* mesg = "hello world";
    /* test with inherent mode */
    std::cout << "Adapter Demo with Class Inherentance Model" << std::endl;

    InherentModel::Print* p_in = new InherentModel::PrintBannerAdapter(); 
    p_in->printStrong(mesg);
    p_in->printWeak(mesg);
    std::cout << std::endl;

    /* test with delegate mode */
    std::cout << "Adapter Demo with Delegate Model" << std::endl;
    DelegateModel::Print* p_de = new DelegateModel::PrintBannerAdapter(mesg);
    p_de->printStrong();
    p_de->printWeak();
    return 0;
}